সি স্ট্রিং (C String)

Computer Programming - সি প্রোগ্রামিং (C Programming) সি স্ট্রিং (C String) |
378
378

এই অধ্যায়ে আপনি সি প্রোগ্রামিং স্ট্রিং(string) এবং এর বিভিন্ন অপারেশন সম্মন্ধে জানবেন। এছাড়া আপনি স্ট্রিং ডিক্লেয়ার(declare) করা, ইনিশিয়ালাইজ(initialize) করা এবং বিভিন্ন ইনপুট/আউটপুট অপারেশনে এদের ব্যবহার সম্মন্ধেও জানবেন।


সি প্রোগ্রামিং স্ট্রিং

 

সি প্রোগ্রামিং এ ক্যারেক্টারে(character) এর array কে স্ট্রিং বলা হয়। null(/0) ক্যারেক্টারের মাধ্যমে স্ট্রিং এর সমাপ্তি ঘটে। উদাহরনস্বরুপঃ

"c string tutorial"

এখানে, "c string tutorial" হলো স্ট্রিং(string)। কম্পাইলার যখন স্ট্রিং কে কম্পাইল করে তখন স্ট্রিং এর শেষে একটি null(/0) ক্যারেক্টার যুক্ত করে দেয়।


সি প্রোগ্রামিং এ মেমোরি ডায়াগ্রাম


সি স্ট্রিং ডিক্লেয়ারেশন

 

স্ট্রিং(string) নিয়ে কাজ করার পূর্বে প্রথমে তাদেরকে ডিক্লেয়ার(declared) করতে হবে।

array কে যে পদ্ধতিতে ডিক্লেয়ার(declared) করা হয় ঠিক একই পদ্ধতিতে স্ট্রিংও ডিক্লেয়ার করা হয়। শুধু পার্থক্য হলো স্ট্রিং char টাইপের


 

array ব্যবহার করেঃ

char s[5];



সি প্রোগ্রমিং এ স্ট্রিং ইনিশিয়ালাইজেশন

pointer ব্যবহার করেঃ

pointer ব্যবহার করেও স্ট্রিং ডিক্লেয়ার করা যেতে পারেঃ

char *p;

সি স্ট্রিং ইনিশিয়ালাইজেশন

 

সি প্রোগ্রামিং এ বিভিন্ন পদ্ধতিতে স্ট্রিং ইনিশিয়ালাইজ(initialized) করা যেতে পারে।

সহজ ও সুবিধার জন্য ইনিশিয়ালাইজেশন(initialization) এবং ডিক্লেয়ারেশন(declaration) উভয় কাজ একই ধাপে করা হয়।

array ব্যবহার করেঃ

char c[] = "abcd";

অথবা,
char c[5] = "abcd";

অথবা,
char c[] = {'a', 'b', 'c', 'd', '\0'};

অথবা,
char c[5] = {'a', 'b', 'c', 'd', '\0'};


সি প্রোগ্রামিং এ স্ট্রিং ইনিশিয়ালাইজেশন

 

pointer ব্যবহার করেঃ

pointer ব্যবহার করেও স্ট্রিংকে নিম্নের ন্যায় ইনিশিয়ালাইজ(initialized) করা যেতে পারেঃ

char *c = "abcd";

ইউজার থেকে স্ট্রিং পাঠ করা

 

অন্য সকল ডাটা টাইপের মতই scanf() ফাংশন ব্যবহার করে আপনি স্ট্রিং পাঠ(read) করতে পারেন।

যাইহোক scanf() ফাংশন প্রবেশকৃত শব্দ-সমূহের শুধুমাত্র প্রথম শব্দকে গ্রহণ করে। হোয়াইট স্পেস(white space) বা শুধুমাত্র স্পেসের দেখা পাওয়া মাত্র এই ফাংশনের সমাপ্তি ঘটে।


 

ইউজার থেকে শব্দ পাঠ/গ্রহণ করা

 

char c[20];
scanf("%s", c);

 

উদাহরনঃ scanf() ফাংশন ব্যবহার করে স্ট্রিং পাঠ করা

 

kt_satt_skill_example_id=408

 

উপরের প্রোগ্রামে Rahman কে অবজ্ঞা করা হয়েছে কারণ scanf() ফাংশন স্পেসের পূর্ববর্তী একটি মাত্র শব্দকে গ্রহণ করে।


 

text এর একটি সারিকে পাঠ করা

 

টেক্সট এর একটি সম্পূর্ণ সারিকে পাঠ/গ্রহণ করার জন্য প্রত্যেক ক্যারেক্টারকে একটি একটি করে পাঠ করা হয়।


 

উদাহরনঃ getchar() ফাংশন ব্যবহার করে টেক্সট(text) এর একটি সারিকে পাঠ করা

 

//টার্মিনাল(terminal) থেকে কিভাবে একটি একটি করে ক্যারেক্টার পাঠ করতে হয় তা ভালভাবে বুঝার জন্য সি প্রোগ্রাম
#include <stdio.h>
int main()
{
   char name[30], ch;
   int i = 0;
   printf("Enter name: ");
   while(ch != '\n')    //ইউজার enter বাটনে ক্লিক করলেই সমাপ্তি ঘটে
   {
       ch = getchar();
       name[i] = ch;
       i++;
   }
   name[i] = '\0';       // সবশেষে null ক্যারেক্টার যুক্ত করা
   printf("Name: %s", name);
   return 0;
}

 

 

উপরে প্রোগ্রামে getchar() ফাংশন ব্যবহার করে প্রতিবার ch ইউজার থেকে একটি করে অক্ষর গ্রহণ করে।

ইউজার enter বাটনে ক্লিক না করা পর্যন্ত এই প্রক্রিয়া চলতেই থাকে। পরিশেষে ইহাকে স্ট্রিং তৈরি করার জন্য শেষে একটি null character যুক্ত করা হয়।

স্ট্রিং গ্রহণের জন্য ইহা একটি বিরক্তিকর পদ্ধতি।


 

লাইব্রেরী ফাংশন ব্যবহার করে

 

সি প্রোগ্রামিং এ স্ট্রিং গ্রহণ এবং প্রদর্শনীর জন্য আরোও সহজ পদ্ধতিঃ পূর্বনির্ধারিত লাইব্রেরী ফাংশন যথাক্রমে gets() এবং puts ব্যবহার করতে পারেন।


 

উদাহরনঃ স্টান্ডার্ড লাইব্রেরী ফাংশন ব্যবহার করে এক সারি(line) টেক্সটকে পাঠ করা

 

kt_satt_skill_example_id=412

 

উপরের উভয় প্রোগ্রাম  একই আউটপুট দেয়ঃ

 

ফাংশনের মধ্য দিয়ে স্ট্রিং অতিক্রম করানো

 

সি প্রোগ্রামিং এ স্ট্রিং char array এর মতই। সুতরাং এদেরকে array এর মত একই পদ্ধতিতে ফাংশনের মধ্য দিয়ে অতিক্রম(pass) করানো যেতে পারে।

আরোও জানতে ফাংশনের মধ্য দিয়ে array অতিক্রম অধ্যায় ভিজিট করুন।

#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    gets(str);             
    displayString(str);     // ফাংশনের মধ্য দিয়ে স্ট্রিং s কে অতিক্রম করানো হয়।     
    return 0;
}
void displayString(char str[]){
    printf("String Output: ");
    puts(str);
}

 

উপরের প্রোগ্রামে স্ট্রিং(string) s কে main() ফাংশন থেকে ইউজার ডিফাইন্ড(user-defined) ফাংশন displayString() এর মধ্য দিয়ে অতিক্রম(pass) করানো হয়েছে। ফাংশন ডিক্লেয়ারেশনে str[] হলো ফরম্যাল আর্গুমেন্ট(formal argument)।


সি স্ট্রিং পরিচালনার ফাংশন

সি প্রোগ্রামিং এ অনেক ধরণের স্ট্রিং অপারেশন রয়েছে যেগুলো আপনি ম্যানুয়ালি(manually) সম্পাদন করতে পারেন। যেমন- স্ট্রিং এর দৈর্ঘ্য(length) নির্ণয়, স্ট্রিং কপি(copy) করা, দুটি স্ট্রিং এর সংযোগ(concatenation) ইত্যাদি।

কিন্তু প্রোগ্রামারদেরকে সহজ করে দেওয়ার জন্য এধরনের অনেক লাইব্রেরী ফাংশন <string.h> হেডার ফাইলের অধীনে ইতোমধ্যেই ডিফাইন্ড(defined) করা আছে।

আরোও জানতে সি প্রোগ্রামিং স্ট্রিং পরিচালনা অধ্যায় ভিজিট করুন।

common.content_added_and_updated_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion